home *** CD-ROM | disk | FTP | other *** search
/ Apple Developer Connection 1998 Fall: Game Toolkit / Disc.iso / SDKs / QuickTime Mac / AIncludes / ImageCodec.a < prev    next >
Encoding:
Text File  |  1998-04-09  |  56.1 KB  |  1,648 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        ImageCodec.a
  3. ;
  4. ;    Contains:    QuickTime Interfaces.
  5. ;
  6. ;    Version:    Technology:    QuickTime 3.0
  7. ;                Release:    QuickTime 3.0
  8. ;
  9. ;    Copyright:    © 1990-1998 by Apple Computer, Inc., all rights reserved
  10. ;
  11. ;    Bugs?:        Please include the the file and version information (from above) with
  12. ;                the problem description.  Developers belonging to one of the Apple
  13. ;                developer programs can submit bug reports to:
  14. ;
  15. ;                    devsupport@apple.com
  16. ;
  17. ;
  18.     IF &TYPE('__IMAGECODEC__') = 'UNDEFINED' THEN
  19. __IMAGECODEC__ SET 1
  20.  
  21.     IF &TYPE('__MACTYPES__') = 'UNDEFINED' THEN
  22.     include 'MacTypes.a'
  23.     ENDIF
  24.     IF &TYPE('__QUICKDRAW__') = 'UNDEFINED' THEN
  25.     include 'Quickdraw.a'
  26.     ENDIF
  27.     IF &TYPE('__IMAGECOMPRESSION__') = 'UNDEFINED' THEN
  28.     include 'ImageCompression.a'
  29.     ENDIF
  30.     IF &TYPE('__COMPONENTS__') = 'UNDEFINED' THEN
  31.     include 'Components.a'
  32.     ENDIF
  33.     IF &TYPE('__MOVIES__') = 'UNDEFINED' THEN
  34.     include 'Movies.a'
  35.     ENDIF
  36.     IF &TYPE('__GXTYPES__') = 'UNDEFINED' THEN
  37.     include 'GXTypes.a'
  38.     ENDIF
  39.  
  40.  
  41. ;     codec capabilities flags    
  42.  
  43. codecCanScale                    EQU        $00000001
  44. codecCanMask                    EQU        $00000002
  45. codecCanMatte                    EQU        $00000004
  46. codecCanTransform                EQU        $00000008
  47. codecCanTransferMode            EQU        $00000010
  48. codecCanCopyPrev                EQU        $00000020
  49. codecCanSpool                    EQU        $00000040
  50. codecCanClipVertical            EQU        $00000080
  51. codecCanClipRectangular            EQU        $00000100
  52. codecCanRemapColor                EQU        $00000200
  53. codecCanFastDither                EQU        $00000400
  54. codecCanSrcExtract                EQU        $00000800
  55. codecCanCopyPrevComp            EQU        $00001000
  56. codecCanAsync                    EQU        $00002000
  57. codecCanMakeMask                EQU        $00004000
  58. codecCanShift                    EQU        $00008000
  59. codecCanAsyncWhen                EQU        $00010000
  60. codecCanShieldCursor            EQU        $00020000
  61. codecCanManagePrevBuffer        EQU        $00040000
  62. codecHasVolatileBuffer            EQU        $00080000
  63. codecWantsRegionMask            EQU        $00100000
  64. codecImageBufferIsOnScreen        EQU        $00200000
  65. codecWantsDestinationPixels        EQU        $00400000
  66. codecWantsSpecialScaling        EQU        $00800000
  67. codecHandlesInputs                EQU        $01000000
  68. codecCanDoIndirectSurface        EQU        $02000000
  69. codecIsSequenceSensitive        EQU        $04000000
  70. codecRequiresOffscreen            EQU        $08000000
  71. codecRequiresMaskBits            EQU        $10000000
  72. codecCanRemapResolution            EQU        $20000000
  73. codecIsDirectToScreenOnly        EQU        $40000000
  74. codecCanLockSurface                EQU        $80000000
  75. CodecCapabilities        RECORD 0
  76. flags                     ds.l    1                ; offset: $0 (0)
  77. wantedPixelSize             ds.w    1                ; offset: $4 (4)
  78. extendWidth                 ds.w    1                ; offset: $6 (6)
  79. extendHeight             ds.w    1                ; offset: $8 (8)
  80. bandMin                     ds.w    1                ; offset: $A (10)
  81. bandInc                     ds.w    1                ; offset: $C (12)
  82. pad                         ds.w    1                ; offset: $E (14)
  83. time                     ds.l    1                ; offset: $10 (16)
  84. sizeof                     EQU *                    ; size:   $14 (20)
  85.                         ENDR
  86. ;     codec condition flags    
  87.  
  88. codecConditionFirstBand            EQU        $00000001
  89. codecConditionLastBand            EQU        $00000002
  90. codecConditionFirstFrame        EQU        $00000004
  91. codecConditionNewDepth            EQU        $00000008
  92. codecConditionNewTransform        EQU        $00000010
  93. codecConditionNewSrcRect        EQU        $00000020
  94. codecConditionNewMask            EQU        $00000040
  95. codecConditionNewMatte            EQU        $00000080
  96. codecConditionNewTransferMode    EQU        $00000100
  97. codecConditionNewClut            EQU        $00000200
  98. codecConditionNewAccuracy        EQU        $00000400
  99. codecConditionNewDestination    EQU        $00000800
  100. codecConditionFirstScreen        EQU        $00001000
  101. codecConditionDoCursor            EQU        $00002000
  102. codecConditionCatchUpDiff        EQU        $00004000
  103. codecConditionMaskMayBeChanged    EQU        $00008000
  104. codecConditionToBuffer            EQU        $00010000
  105. codecConditionCodecChangedMask    EQU        $80000000
  106.  
  107.  
  108. codecInfoResourceType            EQU        'cdci'                ; codec info resource type 
  109. codecInterfaceVersion            EQU        2                    ; high word returned in component GetVersion 
  110. CDSequenceDataSourceQueueEntry RECORD 0
  111. nextBusy                 ds.l    1                ; offset: $0 (0)
  112. descSeed                 ds.l    1                ; offset: $4 (4)
  113. dataDesc                 ds.l    1                ; offset: $8 (8)
  114. data                     ds.l    1                ; offset: $C (12)
  115. dataSize                 ds.l    1                ; offset: $10 (16)
  116. useCount                 ds.l    1                ; offset: $14 (20)
  117. frameTime                 ds.l    1                ; offset: $18 (24)
  118. frameDuration             ds.l    1                ; offset: $1C (28)
  119. timeScale                 ds.l    1                ; offset: $20 (32)
  120. sizeof                     EQU *                    ; size:   $24 (36)
  121.                         ENDR
  122. ; typedef struct CDSequenceDataSourceQueueEntry * CDSequenceDataSourceQueueEntryPtr
  123.  
  124. CDSequenceDataSource    RECORD 0
  125. recordSize                 ds.l    1                ; offset: $0 (0)
  126. next                     ds.l    1                ; offset: $4 (4)
  127. seqID                     ds.l    1                ; offset: $8 (8)
  128. sourceID                 ds.l    1                ; offset: $C (12)
  129. sourceType                 ds.l    1                ; offset: $10 (16)
  130. sourceInputNumber         ds.l    1                ; offset: $14 (20)
  131. dataPtr                     ds.l    1                ; offset: $18 (24)
  132. dataDescription             ds.l    1                ; offset: $1C (28)
  133. changeSeed                 ds.l    1                ; offset: $20 (32)
  134. transferProc             ds.l    1                ; offset: $24 (36)
  135. transferRefcon             ds.l    1                ; offset: $28 (40)
  136. dataSize                 ds.l    1                ; offset: $2C (44)
  137. ;  fields available in QT 3 and later 
  138. dataQueue                 ds.l    1                ; offset: $30 (48)        ;  queue of CDSequenceDataSourceQueueEntry structures
  139. originalDataPtr             ds.l    1                ; offset: $34 (52)
  140. originalDataSize         ds.l    1                ; offset: $38 (56)
  141. originalDataDescription     ds.l    1                ; offset: $3C (60)
  142. originalDataDescriptionSeed  ds.l 1                ; offset: $40 (64)
  143. sizeof                     EQU *                    ; size:   $44 (68)
  144.                         ENDR
  145. ; typedef struct CDSequenceDataSource *    CDSequenceDataSourcePtr
  146.  
  147. ICMFrameTimeInfo        RECORD 0
  148. startTime                 ds        wide            ; offset: $0 (0)
  149. scale                     ds.l    1                ; offset: $8 (8)
  150. duration                 ds.l    1                ; offset: $C (12)
  151. sizeof                     EQU *                    ; size:   $10 (16)
  152.                         ENDR
  153. ; typedef struct ICMFrameTimeInfo *        ICMFrameTimeInfoPtr
  154.  
  155. CodecCompressParams        RECORD 0
  156. sequenceID                 ds.l    1                ; offset: $0 (0)        ;  precompress,bandcompress 
  157. imageDescription         ds.l    1                ; offset: $4 (4)        ;  precompress,bandcompress 
  158. data                     ds.l    1                ; offset: $8 (8)
  159. bufferSize                 ds.l    1                ; offset: $C (12)
  160. frameNumber                 ds.l    1                ; offset: $10 (16)
  161. startLine                 ds.l    1                ; offset: $14 (20)
  162. stopLine                 ds.l    1                ; offset: $18 (24)
  163. conditionFlags             ds.l    1                ; offset: $1C (28)
  164. callerFlags                 ds.w    1                ; offset: $20 (32)
  165. capabilities             ds.l    1                ; offset: $22 (34)        ;  precompress,bandcompress 
  166. progressProcRecord         ds        ICMProgressProcRecord ; offset: $26 (38)
  167. completionProcRecord     ds        ICMCompletionProcRecord ; offset: $2E (46)
  168. flushProcRecord             ds        ICMFlushProcRecord ; offset: $36 (54)
  169. srcPixMap                 ds        PixMap            ; offset: $3E (62)        ;  precompress,bandcompress 
  170. prevPixMap                 ds        PixMap            ; offset: $70 (112)
  171. spatialQuality             ds.l    1                ; offset: $A2 (162)
  172. temporalQuality             ds.l    1                ; offset: $A6 (166)
  173. similarity                 ds.l    1                ; offset: $AA (170)
  174. dataRateParams             ds.l    1                ; offset: $AE (174)
  175. reserved                 ds.l    1                ; offset: $B2 (178)
  176. ;  The following fields only exist for QuickTime 2.1 and greater 
  177. majorSourceChangeSeed     ds.w    1                ; offset: $B6 (182)
  178. minorSourceChangeSeed     ds.w    1                ; offset: $B8 (184)
  179. sourceData                 ds.l    1                ; offset: $BA (186)
  180. ;  The following fields only exit for QuickTime 2.5 and greater 
  181. preferredPacketSizeInBytes  ds.l 1                ; offset: $BE (190)
  182. ;  The following fields only exit for QuickTime 3.0 and greater 
  183. requestedBufferWidth     ds.l    1                ; offset: $C2 (194)        ;  must set codecWantsSpecialScaling to indicate this field is valid
  184. requestedBufferHeight     ds.l    1                ; offset: $C6 (198)        ;  must set codecWantsSpecialScaling to indicate this field is valid
  185. sizeof                     EQU *                    ; size:   $CA (202)
  186.                         ENDR
  187. CodecDecompressParams    RECORD 0
  188. sequenceID                 ds.l    1                ; offset: $0 (0)        ;  predecompress,banddecompress 
  189. imageDescription         ds.l    1                ; offset: $4 (4)        ;  predecompress,banddecompress 
  190. data                     ds.l    1                ; offset: $8 (8)
  191. bufferSize                 ds.l    1                ; offset: $C (12)
  192. frameNumber                 ds.l    1                ; offset: $10 (16)
  193. startLine                 ds.l    1                ; offset: $14 (20)
  194. stopLine                 ds.l    1                ; offset: $18 (24)
  195. conditionFlags             ds.l    1                ; offset: $1C (28)
  196. callerFlags                 ds.w    1                ; offset: $20 (32)
  197. capabilities             ds.l    1                ; offset: $22 (34)        ;  predecompress,banddecompress 
  198. progressProcRecord         ds        ICMProgressProcRecord ; offset: $26 (38)
  199. completionProcRecord     ds        ICMCompletionProcRecord ; offset: $2E (46)
  200. dataProcRecord             ds        ICMDataProcRecord ; offset: $36 (54)
  201. port                     ds.l    1                ; offset: $3E (62)        ;  predecompress,banddecompress 
  202. dstPixMap                 ds        PixMap            ; offset: $42 (66)        ;  predecompress,banddecompress 
  203. maskBits                 ds.l    1                ; offset: $74 (116)
  204. mattePixMap                 ds.l    1                ; offset: $78 (120)
  205. srcRect                     ds        Rect            ; offset: $7C (124)        ;  predecompress,banddecompress 
  206. matrix                     ds.l    1                ; offset: $84 (132)        ;  predecompress,banddecompress 
  207. accuracy                 ds.l    1                ; offset: $88 (136)        ;  predecompress,banddecompress 
  208. transferMode             ds.w    1                ; offset: $8C (140)        ;  predecompress,banddecompress 
  209. frameTime                 ds.l    1                ; offset: $8E (142)        ;  banddecompress 
  210. reserved                 ds.l    1                ; offset: $92 (146) <-- really an array of length one
  211. ;  The following fields only exist for QuickTime 2.0 and greater 
  212. matrixFlags                 ds.b    1                ; offset: $96 (150)        ;  high bit set if 2x resize 
  213. matrixType                 ds.b    1                ; offset: $97 (151)
  214. dstRect                     ds        Rect            ; offset: $98 (152)        ;  only valid for simple transforms 
  215. ;  The following fields only exist for QuickTime 2.1 and greater 
  216. majorSourceChangeSeed     ds.w    1                ; offset: $A0 (160)
  217. minorSourceChangeSeed     ds.w    1                ; offset: $A2 (162)
  218. sourceData                 ds.l    1                ; offset: $A4 (164)
  219. maskRegion                 ds.l    1                ; offset: $A8 (168)
  220. ;  The following fields only exist for QuickTime 2.5 and greater 
  221. wantedDestinationPixelTypes  ds.l 1                ; offset: $AC (172)        ;  Handle to 0-terminated list of OSTypes 
  222. screenFloodMethod         ds.l    1                ; offset: $B0 (176)
  223. screenFloodValue         ds.l    1                ; offset: $B4 (180)
  224. preferredOffscreenPixelSize  ds.w 1                ; offset: $B8 (184)
  225. ;  The following fields only exist for QuickTime 3.0 and greater 
  226. syncFrameTime             ds.l    1                ; offset: $BA (186)        ;  banddecompress 
  227. needUpdateOnTimeChange     ds.b    1                ; offset: $BE (190)        ;  banddecompress 
  228. enableBlackLining         ds.b    1                ; offset: $BF (191)
  229. needUpdateOnSourceChange  ds.b    1                ; offset: $C0 (192)        ;  band decompress 
  230. pad                         ds.b    1                ; offset: $C1 (193)
  231. unused                     ds.l    1                ; offset: $C2 (194)
  232. finalDestinationPort     ds.l    1                ; offset: $C6 (198)
  233. requestedBufferWidth     ds.l    1                ; offset: $CA (202)        ;  must set codecWantsSpecialScaling to indicate this field is valid
  234. requestedBufferHeight     ds.l    1                ; offset: $CE (206)        ;  must set codecWantsSpecialScaling to indicate this field is valid
  235. sizeof                     EQU *                    ; size:   $D2 (210)
  236.                         ENDR
  237.  
  238. matrixFlagScale2x                EQU        $00000080
  239. matrixFlagScale1x                EQU        $00000040
  240. matrixFlagScaleHalf                EQU        $00000020
  241.  
  242. kScreenFloodMethodNone            EQU        0
  243. kScreenFloodMethodKeyColor        EQU        1
  244. kScreenFloodMethodAlpha            EQU        2
  245.  
  246. kFlushLastQueuedFrame            EQU        0
  247. kFlushFirstQueuedFrame            EQU        1
  248.  
  249. kNewImageGWorldErase            EQU        $00000001
  250. ImageSubCodecDecompressCapabilities RECORD 0
  251. recordSize                 ds.l    1                ; offset: $0 (0)        ;  sizeof(ImageSubCodecDecompressCapabilities)
  252. decompressRecordSize     ds.l    1                ; offset: $4 (4)        ;  size of your codec's decompress record
  253. canAsync                 ds.b    1                ; offset: $8 (8)        ;  default true
  254. pad                         ds.b    3                ; offset: $9 (9)
  255. sizeof                     EQU *                    ; size:   $C (12)
  256.                         ENDR
  257.  
  258. kCodecFrameTypeUnknown            EQU        0
  259. kCodecFrameTypeKey                EQU        1
  260. kCodecFrameTypeDifference        EQU        2
  261. kCodecFrameTypeDroppableDifference EQU    3
  262. ImageSubCodecDecompressRecord RECORD 0
  263. baseAddr                 ds.l    1                ; offset: $0 (0)
  264. rowBytes                 ds.l    1                ; offset: $4 (4)
  265. codecData                 ds.l    1                ; offset: $8 (8)
  266. progressProcRecord         ds        ICMProgressProcRecord ; offset: $C (12)
  267. dataProcRecord             ds        ICMDataProcRecord ; offset: $14 (20)
  268. userDecompressRecord     ds.l    1                ; offset: $1C (28)        ;  pointer to codec-specific per-band data
  269. frameType                 ds.b    1                ; offset: $20 (32)
  270. pad                         ds.b    3                ; offset: $21 (33)
  271. sizeof                     EQU *                    ; size:   $24 (36)
  272.                         ENDR
  273. ;  name of parameters or effect -- placed in root container, required 
  274.  
  275. kParameterTitleName                EQU        'name'
  276. kParameterTitleID                EQU        1
  277. ;  codec sub-type of parameters or effect -- placed in root container, required 
  278.  
  279. kParameterWhatName                EQU        'what'
  280. kParameterWhatID                EQU        1
  281. ;  effect version -- placed in root container, optional, but recommended 
  282.  
  283. kParameterVersionName            EQU        'vers'
  284. kParameterVersionID                EQU        1
  285. ;  is effect repeatable -- placed in root container, optional, default is TRUE
  286.  
  287. kParameterRepeatableName        EQU        'pete'
  288. kParameterRepeatableID            EQU        1
  289.  
  290. kParameterRepeatableTrue        EQU        1
  291. kParameterRepeatableFalse        EQU        0
  292. ;  substitution codec in case effect is missing -- placed in root container, recommended 
  293.  
  294. kParameterAlternateCodecName    EQU        'subs'
  295. kParameterAlternateCodecID        EQU        1
  296. ;  maximum number of sources -- placed in root container, required 
  297.  
  298. kParameterSourceCountName        EQU        'srcs'
  299. kParameterSourceCountID            EQU        1
  300.  
  301.  
  302. kParameterDependencyName        EQU        'deep'
  303. kParameterDependencyID            EQU        1
  304.  
  305. kParameterListDependsUponColorProfiles EQU 'prof'
  306. kParameterListDependsUponFonts    EQU        'font'
  307. ParameterDependancyRecord RECORD 0
  308. dependCount                 ds.l    1                ; offset: $0 (0)
  309. depends                     ds.l    1                ; offset: $4 (4) <-- really an array of length one
  310. sizeof                     EQU *                    ; size:   $8 (8)
  311.                         ENDR
  312.  
  313. ;   enumeration list in container -- placed in root container, optional unless used by a
  314. ;   parameter in the list
  315.  
  316.  
  317.  
  318. kParameterEnumList                EQU        'enum'
  319. EnumValuePair            RECORD 0
  320. value                     ds.l    1                ; offset: $0 (0)
  321. name                     ds        Str255            ; offset: $4 (4)
  322. sizeof                     EQU *                    ; size:   $104 (260)
  323.                         ENDR
  324. EnumListRecord            RECORD 0
  325. enumCount                 ds.l    1                ; offset: $0 (0)        ;  number of enumeration items to follow
  326. values                     ds        EnumValuePair    ; offset: $4 (4) <-- really an array of length one ;  values and names for them, packed 
  327. sizeof                     EQU *                    ; size:   $108 (264)
  328.                         ENDR
  329. ;  atom type of parameter
  330.  
  331. kParameterAtomTypeAndID            EQU        'type'
  332.  
  333. kNoAtom                            EQU        'none'                ; atom type for no data got/set
  334. kAtomNoFlags                    EQU        $00000000
  335. kAtomNotInterpolated            EQU        $00000001            ; atom can never be interpolated
  336. kAtomInterpolateIsOptional        EQU        $00000002            ; atom can be interpolated, but it is an advanced user operation
  337. ParameterAtomTypeAndID    RECORD 0
  338. atomType                 ds.l    1                ; offset: $0 (0)        ;  type of atom this data comes from/goes into
  339. atomID                     ds.l    1                ; offset: $4 (4)        ;  ID of atom this data comes from/goes into
  340. atomFlags                 ds.l    1                ; offset: $8 (8)        ;  options for this atom
  341. atomName                 ds        Str255            ; offset: $C (12)        ;  name of this value type
  342. sizeof                     EQU *                    ; size:   $10C (268)
  343.                         ENDR
  344. ;  data type of a parameter
  345.  
  346. kParameterDataType                EQU        'data'
  347.  
  348. kParameterTypeDataLong            EQU        2                    ; integer value
  349. kParameterTypeDataFixed            EQU        3                    ; fixed point value
  350. kParameterTypeDataRGBValue        EQU        8                    ; RGBColor data
  351. kParameterTypeDataDouble        EQU        11                    ; IEEE 64 bit floating point value
  352. kParameterTypeDataText            EQU        'text'                ; editable text item
  353. kParameterTypeDataEnum            EQU        'enum'                ; enumerated lookup value
  354. kParameterTypeDataBitField        EQU        'bool'                ; bit field value (something that holds boolean(s))
  355. kParameterTypeDataImage            EQU        'imag'                ; reference to an image via Picture data
  356. ParameterDataType        RECORD 0
  357. dataType                 ds.l    1                ; offset: $0 (0)        ;  type of data this item is stored as
  358. sizeof                     EQU *                    ; size:   $4 (4)
  359.                         ENDR
  360.  
  361. ;   alternate (optional) data type -- main data type always required.  
  362. ;   Must be modified or deleted when modifying main data type.
  363. ;   Main data type must be modified when alternate is modified.
  364.  
  365.  
  366.  
  367. kParameterAlternateDataType        EQU        'alt1'
  368. kParameterTypeDataColorValue    EQU        'cmlr'                ; CMColor data (supported on machines with ColorSync)
  369. kParameterTypeDataCubic            EQU        'cubi'                ; cubic bezier(s) (no built-in support)
  370. kParameterTypeDataNURB            EQU        'nurb'                ; nurb(s) (no built-in support)
  371. ParameterAlternateDataEntry RECORD 0
  372. dataType                 ds.l    1                ; offset: $0 (0)        ;  type of data this item is stored as
  373. alternateAtom             ds.l    1                ; offset: $4 (4)        ;  where to store
  374. sizeof                     EQU *                    ; size:   $8 (8)
  375.                         ENDR
  376. ParameterAlternateDataType RECORD 0
  377. numEntries                 ds.l    1                ; offset: $0 (0)
  378. entries                     ds        ParameterAlternateDataEntry ; offset: $4 (4) <-- really an array of length one
  379. sizeof                     EQU *                    ; size:   $C (12)
  380.                         ENDR
  381. ;  legal values for the parameter
  382.  
  383. kParameterDataRange                EQU        'rang'
  384.  
  385. kNoMinimumLongFixed                EQU        $7FFFFFFF            ; ignore minimum/maxiumum values
  386. kNoMaximumLongFixed                EQU        $80000000
  387. kNoScaleLongFixed                EQU        0                    ; don't perform any scaling of value
  388. kNoPrecision                    EQU        -1                    ; allow as many digits as format
  389. ;  'text'
  390. StringRangeRecord        RECORD 0
  391. maxChars                 ds.l    1                ; offset: $0 (0)        ;  maximum length of string
  392. maxLines                 ds.l    1                ; offset: $4 (4)        ;  number of editing lines to use (1 typical, 0 to default)
  393. sizeof                     EQU *                    ; size:   $8 (8)
  394.                         ENDR
  395. ;  'long'
  396. LongRangeRecord            RECORD 0
  397. minValue                 ds.l    1                ; offset: $0 (0)        ;  no less than this
  398. maxValue                 ds.l    1                ; offset: $4 (4)        ;  no more than this
  399. scaleValue                 ds.l    1                ; offset: $8 (8)        ;  muliply content by this going in, divide going out
  400. precisionDigits             ds.l    1                ; offset: $C (12)        ;  # digits of precision when editing via typing
  401. sizeof                     EQU *                    ; size:   $10 (16)
  402.                         ENDR
  403. ;  'enum'
  404. EnumRangeRecord            RECORD 0
  405. enumID                     ds.l    1                ; offset: $0 (0)        ;  'enum' list in root container to search within
  406. sizeof                     EQU *                    ; size:   $4 (4)
  407.                         ENDR
  408. ;  'fixd'
  409. FixedRangeRecord        RECORD 0
  410. minValue                 ds.l    1                ; offset: $0 (0)        ;  no less than this
  411. maxValue                 ds.l    1                ; offset: $4 (4)        ;  no more than this
  412. scaleValue                 ds.l    1                ; offset: $8 (8)        ;  muliply content by this going in, divide going out
  413. precisionDigits             ds.l    1                ; offset: $C (12)        ;  # digits of precision when editing via typing
  414. sizeof                     EQU *                    ; size:   $10 (16)
  415.                         ENDR
  416. ;  'doub'
  417. ;  'bool'    
  418. BooleanRangeRecord        RECORD 0
  419. maskValue                 ds.l    1                ; offset: $0 (0)        ;  value to mask on/off to set/clear the boolean
  420. sizeof                     EQU *                    ; size:   $4 (4)
  421.                         ENDR
  422. ;  'rgb '
  423. RGBRangeRecord            RECORD 0
  424. minColor                 ds        RGBColor        ; offset: $0 (0)
  425. maxColor                 ds        RGBColor        ; offset: $6 (6)
  426. sizeof                     EQU *                    ; size:   $C (12)
  427.                         ENDR
  428. ;  'imag'
  429.  
  430. kParameterImageNoFlags            EQU        0
  431. ImageRangeRecord        RECORD 0
  432. imageFlags                 ds.l    1                ; offset: $0 (0)
  433. sizeof                     EQU *                    ; size:   $4 (4)
  434.                         ENDR
  435. ;  union of all of the above
  436. ;  UI behavior of a parameter
  437.  
  438. kParameterDataBehavior            EQU        'ditl'
  439.  
  440.                                                             ; items edited via typing
  441. kParameterItemEditText            EQU        'edit'                ; edit text box
  442. kParameterItemEditLong            EQU        'long'                ; long number editing box
  443. kParameterItemEditFixed            EQU        'fixd'                ; fixed point number editing box
  444. kParameterItemEditDouble        EQU        'doub'                ; double number editing box
  445.                                                             ; items edited via control(s)
  446. kParameterItemPopUp                EQU        'popu'                ; pop up value for enum types
  447. kParameterItemRadioCluster        EQU        'radi'                ; radio cluster for enum types
  448. kParameterItemCheckBox            EQU        'chex'                ; check box for booleans
  449. kParameterItemControl            EQU        'cntl'                ; item controlled via a standard control of some type
  450.                                                             ; special user items
  451. kParameterItemLine                EQU        'line'                ; line
  452. kParameterItemColorPicker        EQU        'pick'                ; color swatch & picker
  453. kParameterItemGroupDivider        EQU        'divi'                ; start of a new group of items
  454. kParameterItemStaticText        EQU        'stat'                ; display "parameter name" as static text
  455. kParameterItemDragImage            EQU        'imag'                ; allow image display, along with drag and drop
  456.                                                             ; flags valid for lines and groups
  457. kGraphicsNoFlags                EQU        $00000000            ; no options for graphics
  458. kGraphicsFlagsGray                EQU        $00000001            ; draw lines with gray
  459.                                                             ; flags valid for groups
  460. kGroupNoFlags                    EQU        $00000000            ; no options for group -- may be combined with graphics options                        
  461. kGroupAlignText                    EQU        $00010000            ; edit text items in group have the same size
  462. kGroupSurroundBox                EQU        $00020000            ; group should be surrounded with a box
  463. kGroupMatrix                    EQU        $00040000            ; side-by-side arrangement of group is okay
  464. kGroupNoName                    EQU        $00080000            ; name of group should not be displayed above box
  465.                                                             ; flags valid for popup/radiocluster/checkbox/control
  466. kDisableControl                    EQU        $00000001
  467. kDisableWhenNotEqual            EQU        $00000001
  468. kDisableWhenEqual                EQU        $00000011
  469. kDisableWhenLessThan            EQU        $00000021
  470. kDisableWhenGreaterThan            EQU        $00000031            ; flags valid for popups
  471. kPopupStoreAsString                EQU        $00010000
  472. ControlBehaviors        RECORD 0
  473. groupID                     ds.l    1                ; offset: $0 (0)        ;  group under control of this item
  474. controlValue             ds.l    1                ; offset: $4 (4)        ;  control value for comparison purposes
  475. sizeof                     EQU *                    ; size:   $8 (8)
  476.                         ENDR
  477. ParameterDataBehavior    RECORD 0
  478. behaviorType             ds.l    1                ; offset: $0 (0)
  479. behaviorFlags             ds.l    1                ; offset: $4 (4)
  480. controls                 ds        ControlBehaviors ; offset: $8 (8)
  481. sizeof                     EQU *                    ; size:   $10 (16)
  482.                         ENDR
  483. ;  higher level purpose of a parameter or set of parameters
  484.  
  485. kParameterDataUsage                EQU        'use '
  486.  
  487. kParameterUsagePixels            EQU        'pixl'
  488. kParameterUsageRectangle        EQU        'rect'
  489. kParameterUsagePoint            EQU        'xy  '
  490. kParameterUsage3DPoint            EQU        'xyz '
  491. kParameterUsageDegrees            EQU        'degr'
  492. kParameterUsageRadians            EQU        'rads'
  493. kParameterUsagePercent            EQU        'pcnt'
  494. kParameterUsageSeconds            EQU        'secs'
  495. kParameterUsageMilliseconds        EQU        'msec'
  496. kParameterUsageMicroseconds        EQU        'µsec'
  497. kParameterUsage3by3Matrix        EQU        '3by3'
  498. ParameterDataUsage        RECORD 0
  499. usageType                 ds.l    1                ; offset: $0 (0)        ;  higher level purpose of the data or group
  500. sizeof                     EQU *                    ; size:   $4 (4)
  501.                         ENDR
  502. ;  default value(s) for a parameter
  503.  
  504. kParameterDataDefaultItem        EQU        'dflt'
  505. ;  atoms that help to fill in data within the info window 
  506.  
  507. kParameterInfoLongName            EQU        '©nam'
  508. kParameterInfoCopyright            EQU        '©cpy'
  509. kParameterInfoDescription        EQU        '©inf'
  510. kParameterInfoWindowTitle        EQU        '©wnt'
  511. kParameterInfoPicture            EQU        '©pix'
  512. kParameterInfoManufacturer        EQU        '©man'
  513. kParameterInfoIDs                EQU        1
  514. ;  flags for ImageCodecValidateParameters 
  515.  
  516. kParameterValidationNoFlags        EQU        $00000000
  517. kParameterValidationFinalValidation EQU    $00000001
  518. ; typedef long                             QTParameterValidationOptions
  519.  
  520. ;  QTAtomTypes for atoms in image compressor settings containers
  521.  
  522. kImageCodecSettingsFieldCount    EQU        'fiel'                ; Number of fields (UInt8) 
  523. kImageCodecSettingsFieldOrdering EQU    'fdom'                ; Ordering of fields (UInt8)
  524. kImageCodecSettingsFieldOrderingF1F2 EQU 1
  525. kImageCodecSettingsFieldOrderingF2F1 EQU 2
  526. ;     codec selectors 0-127 are reserved by Apple 
  527. ;     codec selectors 128-191 are subtype specific 
  528. ;     codec selectors 192-255 are vendor specific 
  529. ;     codec selectors 256-32767 are available for general use 
  530. ;     negative selectors are reserved by the Component Manager 
  531. ;
  532. ; pascal ComponentResult ImageCodecGetCodecInfo(ComponentInstance ci, CodecInfo *info)
  533. ;
  534.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  535.         Macro
  536.         _ImageCodecGetCodecInfo
  537.             move.l              #$00040000,-(sp)
  538.             moveq               #0,D0
  539.             dc.w                $A82A
  540.         EndM
  541.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  542.         IMPORT_CFM_FUNCTION ImageCodecGetCodecInfo
  543.     ENDIF
  544.  
  545. ;
  546. ; pascal ComponentResult ImageCodecGetCompressionTime(ComponentInstance ci, PixMapHandle src, const Rect *srcRect, short depth, CodecQ *spatialQuality, CodecQ *temporalQuality, unsigned long *time)
  547. ;
  548.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  549.         Macro
  550.         _ImageCodecGetCompressionTime
  551.             move.l              #$00160001,-(sp)
  552.             moveq               #0,D0
  553.             dc.w                $A82A
  554.         EndM
  555.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  556.         IMPORT_CFM_FUNCTION ImageCodecGetCompressionTime
  557.     ENDIF
  558.  
  559. ;
  560. ; pascal ComponentResult ImageCodecGetMaxCompressionSize(ComponentInstance ci, PixMapHandle src, const Rect *srcRect, short depth, CodecQ quality, long *size)
  561. ;
  562.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  563.         Macro
  564.         _ImageCodecGetMaxCompressionSize
  565.             move.l              #$00120002,-(sp)
  566.             moveq               #0,D0
  567.             dc.w                $A82A
  568.         EndM
  569.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  570.         IMPORT_CFM_FUNCTION ImageCodecGetMaxCompressionSize
  571.     ENDIF
  572.  
  573. ;
  574. ; pascal ComponentResult ImageCodecPreCompress(ComponentInstance ci, CodecCompressParams *params)
  575. ;
  576.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  577.         Macro
  578.         _ImageCodecPreCompress
  579.             move.l              #$00040003,-(sp)
  580.             moveq               #0,D0
  581.             dc.w                $A82A
  582.         EndM
  583.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  584.         IMPORT_CFM_FUNCTION ImageCodecPreCompress
  585.     ENDIF
  586.  
  587. ;
  588. ; pascal ComponentResult ImageCodecBandCompress(ComponentInstance ci, CodecCompressParams *params)
  589. ;
  590.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  591.         Macro
  592.         _ImageCodecBandCompress
  593.             move.l              #$00040004,-(sp)
  594.             moveq               #0,D0
  595.             dc.w                $A82A
  596.         EndM
  597.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  598.         IMPORT_CFM_FUNCTION ImageCodecBandCompress
  599.     ENDIF
  600.  
  601. ;
  602. ; pascal ComponentResult ImageCodecPreDecompress(ComponentInstance ci, CodecDecompressParams *params)
  603. ;
  604.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  605.         Macro
  606.         _ImageCodecPreDecompress
  607.             move.l              #$00040005,-(sp)
  608.             moveq               #0,D0
  609.             dc.w                $A82A
  610.         EndM
  611.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  612.         IMPORT_CFM_FUNCTION ImageCodecPreDecompress
  613.     ENDIF
  614.  
  615. ;
  616. ; pascal ComponentResult ImageCodecBandDecompress(ComponentInstance ci, CodecDecompressParams *params)
  617. ;
  618.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  619.         Macro
  620.         _ImageCodecBandDecompress
  621.             move.l              #$00040006,-(sp)
  622.             moveq               #0,D0
  623.             dc.w                $A82A
  624.         EndM
  625.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  626.         IMPORT_CFM_FUNCTION ImageCodecBandDecompress
  627.     ENDIF
  628.  
  629. ;
  630. ; pascal ComponentResult ImageCodecBusy(ComponentInstance ci, ImageSequence seq)
  631. ;
  632.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  633.         Macro
  634.         _ImageCodecBusy
  635.             move.l              #$00040007,-(sp)
  636.             moveq               #0,D0
  637.             dc.w                $A82A
  638.         EndM
  639.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  640.         IMPORT_CFM_FUNCTION ImageCodecBusy
  641.     ENDIF
  642.  
  643. ;
  644. ; pascal ComponentResult ImageCodecGetCompressedImageSize(ComponentInstance ci, ImageDescriptionHandle desc, Ptr data, long bufferSize, ICMDataProcRecordPtr dataProc, long *dataSize)
  645. ;
  646.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  647.         Macro
  648.         _ImageCodecGetCompressedImageSize
  649.             move.l              #$00140008,-(sp)
  650.             moveq               #0,D0
  651.             dc.w                $A82A
  652.         EndM
  653.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  654.         IMPORT_CFM_FUNCTION ImageCodecGetCompressedImageSize
  655.     ENDIF
  656.  
  657. ;
  658. ; pascal ComponentResult ImageCodecGetSimilarity(ComponentInstance ci, PixMapHandle src, const Rect *srcRect, ImageDescriptionHandle desc, Ptr data, Fixed *similarity)
  659. ;
  660.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  661.         Macro
  662.         _ImageCodecGetSimilarity
  663.             move.l              #$00140009,-(sp)
  664.             moveq               #0,D0
  665.             dc.w                $A82A
  666.         EndM
  667.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  668.         IMPORT_CFM_FUNCTION ImageCodecGetSimilarity
  669.     ENDIF
  670.  
  671. ;
  672. ; pascal ComponentResult ImageCodecTrimImage(ComponentInstance ci, ImageDescriptionHandle Desc, Ptr inData, long inBufferSize, ICMDataProcRecordPtr dataProc, Ptr outData, long outBufferSize, ICMFlushProcRecordPtr flushProc, Rect *trimRect, ICMProgressProcRecordPtr progressProc)
  673. ;
  674.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  675.         Macro
  676.         _ImageCodecTrimImage
  677.             move.l              #$0024000A,-(sp)
  678.             moveq               #0,D0
  679.             dc.w                $A82A
  680.         EndM
  681.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  682.         IMPORT_CFM_FUNCTION ImageCodecTrimImage
  683.     ENDIF
  684.  
  685. ;
  686. ; pascal ComponentResult ImageCodecRequestSettings(ComponentInstance ci, Handle settings, Rect *rp, ModalFilterUPP filterProc)
  687. ;
  688.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  689.         Macro
  690.         _ImageCodecRequestSettings
  691.             move.l              #$000C000B,-(sp)
  692.             moveq               #0,D0
  693.             dc.w                $A82A
  694.         EndM
  695.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  696.         IMPORT_CFM_FUNCTION ImageCodecRequestSettings
  697.     ENDIF
  698.  
  699. ;
  700. ; pascal ComponentResult ImageCodecGetSettings(ComponentInstance ci, Handle settings)
  701. ;
  702.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  703.         Macro
  704.         _ImageCodecGetSettings
  705.             move.l              #$0004000C,-(sp)
  706.             moveq               #0,D0
  707.             dc.w                $A82A
  708.         EndM
  709.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  710.         IMPORT_CFM_FUNCTION ImageCodecGetSettings
  711.     ENDIF
  712.  
  713. ;
  714. ; pascal ComponentResult ImageCodecSetSettings(ComponentInstance ci, Handle settings)
  715. ;
  716.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  717.         Macro
  718.         _ImageCodecSetSettings
  719.             move.l              #$0004000D,-(sp)
  720.             moveq               #0,D0
  721.             dc.w                $A82A
  722.         EndM
  723.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  724.         IMPORT_CFM_FUNCTION ImageCodecSetSettings
  725.     ENDIF
  726.  
  727. ;
  728. ; pascal ComponentResult ImageCodecFlush(ComponentInstance ci)
  729. ;
  730.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  731.         Macro
  732.         _ImageCodecFlush
  733.             move.l              #$0000000E,-(sp)
  734.             moveq               #0,D0
  735.             dc.w                $A82A
  736.         EndM
  737.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  738.         IMPORT_CFM_FUNCTION ImageCodecFlush
  739.     ENDIF
  740.  
  741. ;
  742. ; pascal ComponentResult ImageCodecSetTimeCode(ComponentInstance ci, void *timeCodeFormat, void *timeCodeTime)
  743. ;
  744.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  745.         Macro
  746.         _ImageCodecSetTimeCode
  747.             move.l              #$0008000F,-(sp)
  748.             moveq               #0,D0
  749.             dc.w                $A82A
  750.         EndM
  751.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  752.         IMPORT_CFM_FUNCTION ImageCodecSetTimeCode
  753.     ENDIF
  754.  
  755. ;
  756. ; pascal ComponentResult ImageCodecIsImageDescriptionEquivalent(ComponentInstance ci, ImageDescriptionHandle newDesc, Boolean *equivalent)
  757. ;
  758.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  759.         Macro
  760.         _ImageCodecIsImageDescriptionEquivalent
  761.             move.l              #$00080010,-(sp)
  762.             moveq               #0,D0
  763.             dc.w                $A82A
  764.         EndM
  765.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  766.         IMPORT_CFM_FUNCTION ImageCodecIsImageDescriptionEquivalent
  767.     ENDIF
  768.  
  769. ;
  770. ; pascal ComponentResult ImageCodecNewMemory(ComponentInstance ci, Ptr *data, Size dataSize, long dataUse, ICMMemoryDisposedUPP memoryGoneProc, void *refCon)
  771. ;
  772.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  773.         Macro
  774.         _ImageCodecNewMemory
  775.             move.l              #$00140011,-(sp)
  776.             moveq               #0,D0
  777.             dc.w                $A82A
  778.         EndM
  779.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  780.         IMPORT_CFM_FUNCTION ImageCodecNewMemory
  781.     ENDIF
  782.  
  783. ;
  784. ; pascal ComponentResult ImageCodecDisposeMemory(ComponentInstance ci, Ptr data)
  785. ;
  786.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  787.         Macro
  788.         _ImageCodecDisposeMemory
  789.             move.l              #$00040012,-(sp)
  790.             moveq               #0,D0
  791.             dc.w                $A82A
  792.         EndM
  793.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  794.         IMPORT_CFM_FUNCTION ImageCodecDisposeMemory
  795.     ENDIF
  796.  
  797. ;
  798. ; pascal ComponentResult ImageCodecHitTestData(ComponentInstance ci, ImageDescriptionHandle desc, void *data, Size dataSize, Point where, Boolean *hit)
  799. ;
  800.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  801.         Macro
  802.         _ImageCodecHitTestData
  803.             move.l              #$00140013,-(sp)
  804.             moveq               #0,D0
  805.             dc.w                $A82A
  806.         EndM
  807.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  808.         IMPORT_CFM_FUNCTION ImageCodecHitTestData
  809.     ENDIF
  810.  
  811. ;
  812. ; pascal ComponentResult ImageCodecNewImageBufferMemory(ComponentInstance ci, CodecDecompressParams *params, long flags, ICMMemoryDisposedUPP memoryGoneProc, void *refCon)
  813. ;
  814.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  815.         Macro
  816.         _ImageCodecNewImageBufferMemory
  817.             move.l              #$00100014,-(sp)
  818.             moveq               #0,D0
  819.             dc.w                $A82A
  820.         EndM
  821.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  822.         IMPORT_CFM_FUNCTION ImageCodecNewImageBufferMemory
  823.     ENDIF
  824.  
  825. ;
  826. ; pascal ComponentResult ImageCodecExtractAndCombineFields(ComponentInstance ci, long fieldFlags, void *data1, long dataSize1, ImageDescriptionHandle desc1, void *data2, long dataSize2, ImageDescriptionHandle desc2, void *outputData, long *outDataSize, ImageDescriptionHandle descOut)
  827. ;
  828.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  829.         Macro
  830.         _ImageCodecExtractAndCombineFields
  831.             move.l              #$00280015,-(sp)
  832.             moveq               #0,D0
  833.             dc.w                $A82A
  834.         EndM
  835.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  836.         IMPORT_CFM_FUNCTION ImageCodecExtractAndCombineFields
  837.     ENDIF
  838.  
  839. ;
  840. ; pascal ComponentResult ImageCodecGetMaxCompressionSizeWithSources(ComponentInstance ci, PixMapHandle src, const Rect *srcRect, short depth, CodecQ quality, CDSequenceDataSourcePtr sourceData, long *size)
  841. ;
  842.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  843.         Macro
  844.         _ImageCodecGetMaxCompressionSizeWithSources
  845.             move.l              #$00160016,-(sp)
  846.             moveq               #0,D0
  847.             dc.w                $A82A
  848.         EndM
  849.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  850.         IMPORT_CFM_FUNCTION ImageCodecGetMaxCompressionSizeWithSources
  851.     ENDIF
  852.  
  853. ;
  854. ; pascal ComponentResult ImageCodecSetTimeBase(ComponentInstance ci, void *base)
  855. ;
  856.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  857.         Macro
  858.         _ImageCodecSetTimeBase
  859.             move.l              #$00040017,-(sp)
  860.             moveq               #0,D0
  861.             dc.w                $A82A
  862.         EndM
  863.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  864.         IMPORT_CFM_FUNCTION ImageCodecSetTimeBase
  865.     ENDIF
  866.  
  867. ;
  868. ; pascal ComponentResult ImageCodecSourceChanged(ComponentInstance ci, UInt32 majorSourceChangeSeed, UInt32 minorSourceChangeSeed, CDSequenceDataSourcePtr sourceData, long *flagsOut)
  869. ;
  870.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  871.         Macro
  872.         _ImageCodecSourceChanged
  873.             move.l              #$00100018,-(sp)
  874.             moveq               #0,D0
  875.             dc.w                $A82A
  876.         EndM
  877.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  878.         IMPORT_CFM_FUNCTION ImageCodecSourceChanged
  879.     ENDIF
  880.  
  881. ;
  882. ; pascal ComponentResult ImageCodecFlushFrame(ComponentInstance ci, UInt32 flags)
  883. ;
  884.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  885.         Macro
  886.         _ImageCodecFlushFrame
  887.             move.l              #$00040019,-(sp)
  888.             moveq               #0,D0
  889.             dc.w                $A82A
  890.         EndM
  891.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  892.         IMPORT_CFM_FUNCTION ImageCodecFlushFrame
  893.     ENDIF
  894.  
  895. ;
  896. ; pascal ComponentResult ImageCodecGetSettingsAsText(ComponentInstance ci, Handle *text)
  897. ;
  898.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  899.         Macro
  900.         _ImageCodecGetSettingsAsText
  901.             move.l              #$0004001A,-(sp)
  902.             moveq               #0,D0
  903.             dc.w                $A82A
  904.         EndM
  905.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  906.         IMPORT_CFM_FUNCTION ImageCodecGetSettingsAsText
  907.     ENDIF
  908.  
  909. ;
  910. ; pascal ComponentResult ImageCodecGetParameterListHandle(ComponentInstance ci, Handle *parameterDescriptionHandle)
  911. ;
  912.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  913.         Macro
  914.         _ImageCodecGetParameterListHandle
  915.             move.l              #$0004001B,-(sp)
  916.             moveq               #0,D0
  917.             dc.w                $A82A
  918.         EndM
  919.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  920.         IMPORT_CFM_FUNCTION ImageCodecGetParameterListHandle
  921.     ENDIF
  922.  
  923. ;
  924. ; pascal ComponentResult ImageCodecGetParameterList(ComponentInstance ci, QTAtomContainer *parameterDescription)
  925. ;
  926.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  927.         Macro
  928.         _ImageCodecGetParameterList
  929.             move.l              #$0004001C,-(sp)
  930.             moveq               #0,D0
  931.             dc.w                $A82A
  932.         EndM
  933.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  934.         IMPORT_CFM_FUNCTION ImageCodecGetParameterList
  935.     ENDIF
  936.  
  937. ;
  938. ; pascal ComponentResult ImageCodecCreateStandardParameterDialog(ComponentInstance ci, QTAtomContainer parameterDescription, QTAtomContainer parameters, QTParameterDialogOptions dialogOptions, DialogPtr existingDialog, short existingUserItem, QTParameterDialog *createdDialog)
  939. ;
  940.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  941.         Macro
  942.         _ImageCodecCreateStandardParameterDialog
  943.             move.l              #$0016001D,-(sp)
  944.             moveq               #0,D0
  945.             dc.w                $A82A
  946.         EndM
  947.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  948.         IMPORT_CFM_FUNCTION ImageCodecCreateStandardParameterDialog
  949.     ENDIF
  950.  
  951. ;
  952. ; pascal ComponentResult ImageCodecIsStandardParameterDialogEvent(ComponentInstance ci, EventRecord *pEvent, QTParameterDialog createdDialog)
  953. ;
  954.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  955.         Macro
  956.         _ImageCodecIsStandardParameterDialogEvent
  957.             move.l              #$0008001E,-(sp)
  958.             moveq               #0,D0
  959.             dc.w                $A82A
  960.         EndM
  961.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  962.         IMPORT_CFM_FUNCTION ImageCodecIsStandardParameterDialogEvent
  963.     ENDIF
  964.  
  965. ;
  966. ; pascal ComponentResult ImageCodecDismissStandardParameterDialog(ComponentInstance ci, QTParameterDialog createdDialog)
  967. ;
  968.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  969.         Macro
  970.         _ImageCodecDismissStandardParameterDialog
  971.             move.l              #$0004001F,-(sp)
  972.             moveq               #0,D0
  973.             dc.w                $A82A
  974.         EndM
  975.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  976.         IMPORT_CFM_FUNCTION ImageCodecDismissStandardParameterDialog
  977.     ENDIF
  978.  
  979. ;
  980. ; pascal ComponentResult ImageCodecStandardParameterDialogDoAction(ComponentInstance ci, QTParameterDialog createdDialog, long action, void *params)
  981. ;
  982.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  983.         Macro
  984.         _ImageCodecStandardParameterDialogDoAction
  985.             move.l              #$000C0020,-(sp)
  986.             moveq               #0,D0
  987.             dc.w                $A82A
  988.         EndM
  989.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  990.         IMPORT_CFM_FUNCTION ImageCodecStandardParameterDialogDoAction
  991.     ENDIF
  992.  
  993. ;
  994. ; pascal ComponentResult ImageCodecNewImageGWorld(ComponentInstance ci, CodecDecompressParams *params, GWorldPtr *newGW, long flags)
  995. ;
  996.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  997.         Macro
  998.         _ImageCodecNewImageGWorld
  999.             move.l              #$000C0021,-(sp)
  1000.             moveq               #0,D0
  1001.             dc.w                $A82A
  1002.         EndM
  1003.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1004.         IMPORT_CFM_FUNCTION ImageCodecNewImageGWorld
  1005.     ENDIF
  1006.  
  1007. ;
  1008. ; pascal ComponentResult ImageCodecDisposeImageGWorld(ComponentInstance ci, GWorldPtr theGW)
  1009. ;
  1010.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1011.         Macro
  1012.         _ImageCodecDisposeImageGWorld
  1013.             move.l              #$00040022,-(sp)
  1014.             moveq               #0,D0
  1015.             dc.w                $A82A
  1016.         EndM
  1017.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1018.         IMPORT_CFM_FUNCTION ImageCodecDisposeImageGWorld
  1019.     ENDIF
  1020.  
  1021. ;
  1022. ; pascal ComponentResult ImageCodecHitTestDataWithFlags(ComponentInstance ci, ImageDescriptionHandle desc, void *data, Size dataSize, Point where, long *hit, long hitFlags)
  1023. ;
  1024.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1025.         Macro
  1026.         _ImageCodecHitTestDataWithFlags
  1027.             move.l              #$00180023,-(sp)
  1028.             moveq               #0,D0
  1029.             dc.w                $A82A
  1030.         EndM
  1031.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1032.         IMPORT_CFM_FUNCTION ImageCodecHitTestDataWithFlags
  1033.     ENDIF
  1034.  
  1035. ;
  1036. ; pascal ComponentResult ImageCodecValidateParameters(ComponentInstance ci, QTAtomContainer parameters, QTParameterValidationOptions validationFlags, StringPtr errorString)
  1037. ;
  1038.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1039.         Macro
  1040.         _ImageCodecValidateParameters
  1041.             move.l              #$000C0024,-(sp)
  1042.             moveq               #0,D0
  1043.             dc.w                $A82A
  1044.         EndM
  1045.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1046.         IMPORT_CFM_FUNCTION ImageCodecValidateParameters
  1047.     ENDIF
  1048.  
  1049. ;
  1050. ; pascal ComponentResult ImageCodecGetBaseMPWorkFunction(ComponentInstance ci, ComponentMPWorkFunctionUPP *workFunction, void **refCon, ImageCodecMPDrawBandUPP drawProc, void *drawProcRefCon)
  1051. ;
  1052.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1053.         Macro
  1054.         _ImageCodecGetBaseMPWorkFunction
  1055.             move.l              #$00100025,-(sp)
  1056.             moveq               #0,D0
  1057.             dc.w                $A82A
  1058.         EndM
  1059.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1060.         IMPORT_CFM_FUNCTION ImageCodecGetBaseMPWorkFunction
  1061.     ENDIF
  1062.  
  1063. ;
  1064. ; pascal ComponentResult ImageCodecPreflight(ComponentInstance ci, CodecDecompressParams *params)
  1065. ;
  1066.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1067.         Macro
  1068.         _ImageCodecPreflight
  1069.             move.l              #$00040200,-(sp)
  1070.             moveq               #0,D0
  1071.             dc.w                $A82A
  1072.         EndM
  1073.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1074.         IMPORT_CFM_FUNCTION ImageCodecPreflight
  1075.     ENDIF
  1076.  
  1077. ;
  1078. ; pascal ComponentResult ImageCodecInitialize(ComponentInstance ci, ImageSubCodecDecompressCapabilities *cap)
  1079. ;
  1080.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1081.         Macro
  1082.         _ImageCodecInitialize
  1083.             move.l              #$00040201,-(sp)
  1084.             moveq               #0,D0
  1085.             dc.w                $A82A
  1086.         EndM
  1087.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1088.         IMPORT_CFM_FUNCTION ImageCodecInitialize
  1089.     ENDIF
  1090.  
  1091. ;
  1092. ; pascal ComponentResult ImageCodecBeginBand(ComponentInstance ci, CodecDecompressParams *params, ImageSubCodecDecompressRecord *drp, long flags)
  1093. ;
  1094.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1095.         Macro
  1096.         _ImageCodecBeginBand
  1097.             move.l              #$000C0202,-(sp)
  1098.             moveq               #0,D0
  1099.             dc.w                $A82A
  1100.         EndM
  1101.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1102.         IMPORT_CFM_FUNCTION ImageCodecBeginBand
  1103.     ENDIF
  1104.  
  1105. ;
  1106. ; pascal ComponentResult ImageCodecDrawBand(ComponentInstance ci, ImageSubCodecDecompressRecord *drp)
  1107. ;
  1108.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1109.         Macro
  1110.         _ImageCodecDrawBand
  1111.             move.l              #$00040203,-(sp)
  1112.             moveq               #0,D0
  1113.             dc.w                $A82A
  1114.         EndM
  1115.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1116.         IMPORT_CFM_FUNCTION ImageCodecDrawBand
  1117.     ENDIF
  1118.  
  1119. ;
  1120. ; pascal ComponentResult ImageCodecEndBand(ComponentInstance ci, ImageSubCodecDecompressRecord *drp, OSErr result, long flags)
  1121. ;
  1122.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1123.         Macro
  1124.         _ImageCodecEndBand
  1125.             move.l              #$000A0204,-(sp)
  1126.             moveq               #0,D0
  1127.             dc.w                $A82A
  1128.         EndM
  1129.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1130.         IMPORT_CFM_FUNCTION ImageCodecEndBand
  1131.     ENDIF
  1132.  
  1133. ;
  1134. ; pascal ComponentResult ImageCodecQueueStarting(ComponentInstance ci)
  1135. ;
  1136.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1137.         Macro
  1138.         _ImageCodecQueueStarting
  1139.             move.l              #$00000205,-(sp)
  1140.             moveq               #0,D0
  1141.             dc.w                $A82A
  1142.         EndM
  1143.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1144.         IMPORT_CFM_FUNCTION ImageCodecQueueStarting
  1145.     ENDIF
  1146.  
  1147. ;
  1148. ; pascal ComponentResult ImageCodecQueueStopping(ComponentInstance ci)
  1149. ;
  1150.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1151.         Macro
  1152.         _ImageCodecQueueStopping
  1153.             move.l              #$00000206,-(sp)
  1154.             moveq               #0,D0
  1155.             dc.w                $A82A
  1156.         EndM
  1157.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1158.         IMPORT_CFM_FUNCTION ImageCodecQueueStopping
  1159.     ENDIF
  1160.  
  1161. ;
  1162. ; pascal ComponentResult ImageCodecDroppingFrame(ComponentInstance ci, const ImageSubCodecDecompressRecord *drp)
  1163. ;
  1164.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1165.         Macro
  1166.         _ImageCodecDroppingFrame
  1167.             move.l              #$00040207,-(sp)
  1168.             moveq               #0,D0
  1169.             dc.w                $A82A
  1170.         EndM
  1171.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1172.         IMPORT_CFM_FUNCTION ImageCodecDroppingFrame
  1173.     ENDIF
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.  
  1187. kMotionJPEGTag                    EQU        'mjpg'
  1188. kJPEGQuantizationTablesImageDescriptionExtension EQU 'mjqt'
  1189. kJPEGHuffmanTablesImageDescriptionExtension EQU 'mjht'
  1190. kFieldInfoImageDescriptionExtension EQU    'fiel'                ; image description extension describing the field count and field orderings
  1191.  
  1192. kFieldOrderUnknown                EQU        0
  1193. kFieldsStoredF1F2DisplayedF1F2    EQU        1
  1194. kFieldsStoredF1F2DisplayedF2F1    EQU        2
  1195. kFieldsStoredF2F1DisplayedF1F2    EQU        5
  1196. kFieldsStoredF2F1DisplayedF2F1    EQU        6
  1197. MotionJPEGApp1Marker    RECORD 0
  1198. unused                     ds.l    1                ; offset: $0 (0)
  1199. tag                         ds.l    1                ; offset: $4 (4)
  1200. fieldSize                 ds.l    1                ; offset: $8 (8)
  1201. paddedFieldSize             ds.l    1                ; offset: $C (12)
  1202. offsetToNextField         ds.l    1                ; offset: $10 (16)
  1203. qTableOffset             ds.l    1                ; offset: $14 (20)
  1204. huffmanTableOffset         ds.l    1                ; offset: $18 (24)
  1205. sofOffset                 ds.l    1                ; offset: $1C (28)
  1206. sosOffset                 ds.l    1                ; offset: $20 (32)
  1207. soiOffset                 ds.l    1                ; offset: $24 (36)
  1208. sizeof                     EQU *                    ; size:   $28 (40)
  1209.                         ENDR
  1210. FieldInfoImageDescriptionExtension RECORD 0
  1211. fieldCount                 ds.b    1                ; offset: $0 (0)
  1212. fieldOrderings             ds.b    1                ; offset: $1 (1)
  1213. sizeof                     EQU *                    ; size:   $2 (2)
  1214.                         ENDR
  1215.  
  1216. ;
  1217. ; pascal ComponentResult QTPhotoSetSampling(ComponentInstance codec, short yH, short yV, short cbH, short cbV, short crH, short crV)
  1218. ;
  1219.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1220.         Macro
  1221.         _QTPhotoSetSampling
  1222.             move.l              #$000C0100,-(sp)
  1223.             moveq               #0,D0
  1224.             dc.w                $A82A
  1225.         EndM
  1226.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1227.         IMPORT_CFM_FUNCTION QTPhotoSetSampling
  1228.     ENDIF
  1229.  
  1230. ;
  1231. ; pascal ComponentResult QTPhotoSetRestartInterval(ComponentInstance codec, unsigned short restartInterval)
  1232. ;
  1233.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1234.         Macro
  1235.         _QTPhotoSetRestartInterval
  1236.             move.l              #$00020101,-(sp)
  1237.             moveq               #0,D0
  1238.             dc.w                $A82A
  1239.         EndM
  1240.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1241.         IMPORT_CFM_FUNCTION QTPhotoSetRestartInterval
  1242.     ENDIF
  1243.  
  1244. ;
  1245. ; pascal ComponentResult QTPhotoDefineHuffmanTable(ComponentInstance codec, short componentNumber, Boolean isDC, unsigned char *lengthCounts, unsigned char *values)
  1246. ;
  1247.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1248.         Macro
  1249.         _QTPhotoDefineHuffmanTable
  1250.             move.l              #$000C0102,-(sp)
  1251.             moveq               #0,D0
  1252.             dc.w                $A82A
  1253.         EndM
  1254.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1255.         IMPORT_CFM_FUNCTION QTPhotoDefineHuffmanTable
  1256.     ENDIF
  1257.  
  1258. ;
  1259. ; pascal ComponentResult QTPhotoDefineQuantizationTable(ComponentInstance codec, short componentNumber, unsigned char *table)
  1260. ;
  1261.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1262.         Macro
  1263.         _QTPhotoDefineQuantizationTable
  1264.             move.l              #$00060103,-(sp)
  1265.             moveq               #0,D0
  1266.             dc.w                $A82A
  1267.         EndM
  1268.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1269.         IMPORT_CFM_FUNCTION QTPhotoDefineQuantizationTable
  1270.     ENDIF
  1271.  
  1272.  
  1273.  
  1274.  
  1275.  
  1276. ;  source identifier -- placed in root container of description, one or more required 
  1277.  
  1278. kEffectSourceName                EQU        'src '
  1279.  
  1280. ;  source type -- placed in the input map to identify the source kind 
  1281.  
  1282. kEffectDataSourceType            EQU        'dtst'
  1283. ;   default effect types 
  1284.  
  1285. kEffectRawSource                EQU        0                    ; the source is raw image data
  1286. kEffectGenericType                EQU        'geff'                ; generic effect for combining others
  1287.  
  1288.  
  1289. ; typedef EffectSource *                EffectSourcePtr
  1290.  
  1291. SourceData                RECORD 0
  1292. image                     ds.l    1                ; offset: $0 (0)
  1293.                          ORG 0
  1294. effect                     ds.l    1                ; offset: $0 (0)
  1295. sizeof                     EQU *                    ; size:   $4 (4)
  1296.                         ENDR
  1297.  
  1298. EffectSource            RECORD 0
  1299. effectType                 ds.l    1                ; offset: $0 (0)        ;  type of effect or kEffectRawSource if raw ICM data
  1300. data                     ds.l    1                ; offset: $4 (4)        ;  track data for this effect
  1301. source                     ds        SourceData        ; offset: $8 (8)        ;  source/effect pointers
  1302. next                     ds.l    1                ; offset: $C (12)        ;  the next source for the parent effect
  1303. sizeof                     EQU *                    ; size:   $10 (16)
  1304.                         ENDR
  1305. EffectsFrameParams        RECORD 0
  1306. frameTime                 ds        ICMFrameTimeRecord ; offset: $0 (0)        ;  timing data
  1307. effectDuration             ds.l    1                ; offset: $30 (48)        ;  the duration of a single effect frame
  1308. doAsync                     ds.b    1                ; offset: $34 (52)        ;  set to true if the effect can go async
  1309. pad                         ds.b    3                ; offset: $35 (53)
  1310. source                     ds.l    1                ; offset: $38 (56)        ;  ptr to the source input tree
  1311. refCon                     ds.l    1                ; offset: $3C (60)        ;  storage for the effect
  1312. sizeof                     EQU *                    ; size:   $40 (64)
  1313.                         ENDR
  1314. ; typedef struct EffectsFrameParams *    EffectsFrameParamsPtr
  1315.  
  1316.  
  1317.  
  1318. ;
  1319. ; pascal ComponentResult ImageCodecEffectSetup(ComponentInstance effect, CodecDecompressParams *p)
  1320. ;
  1321.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1322.         Macro
  1323.         _ImageCodecEffectSetup
  1324.             move.l              #$00040300,-(sp)
  1325.             moveq               #0,D0
  1326.             dc.w                $A82A
  1327.         EndM
  1328.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1329.         IMPORT_CFM_FUNCTION ImageCodecEffectSetup
  1330.     ENDIF
  1331.  
  1332. ;
  1333. ; pascal ComponentResult ImageCodecEffectBegin(ComponentInstance effect, CodecDecompressParams *p, EffectsFrameParamsPtr ePtr)
  1334. ;
  1335.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1336.         Macro
  1337.         _ImageCodecEffectBegin
  1338.             move.l              #$00080301,-(sp)
  1339.             moveq               #0,D0
  1340.             dc.w                $A82A
  1341.         EndM
  1342.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1343.         IMPORT_CFM_FUNCTION ImageCodecEffectBegin
  1344.     ENDIF
  1345.  
  1346. ;
  1347. ; pascal ComponentResult ImageCodecEffectRenderFrame(ComponentInstance effect, EffectsFrameParamsPtr p)
  1348. ;
  1349.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1350.         Macro
  1351.         _ImageCodecEffectRenderFrame
  1352.             move.l              #$00040302,-(sp)
  1353.             moveq               #0,D0
  1354.             dc.w                $A82A
  1355.         EndM
  1356.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1357.         IMPORT_CFM_FUNCTION ImageCodecEffectRenderFrame
  1358.     ENDIF
  1359.  
  1360. ;
  1361. ; pascal ComponentResult ImageCodecEffectConvertEffectSourceToFormat(ComponentInstance effect, EffectSourcePtr sourceToConvert, ImageDescriptionHandle requestedDesc)
  1362. ;
  1363.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1364.         Macro
  1365.         _ImageCodecEffectConvertEffectSourceToFormat
  1366.             move.l              #$00080303,-(sp)
  1367.             moveq               #0,D0
  1368.             dc.w                $A82A
  1369.         EndM
  1370.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1371.         IMPORT_CFM_FUNCTION ImageCodecEffectConvertEffectSourceToFormat
  1372.     ENDIF
  1373.  
  1374. ;
  1375. ; pascal ComponentResult ImageCodecEffectCancel(ComponentInstance effect, EffectsFrameParamsPtr p)
  1376. ;
  1377.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1378.         Macro
  1379.         _ImageCodecEffectCancel
  1380.             move.l              #$00040304,-(sp)
  1381.             moveq               #0,D0
  1382.             dc.w                $A82A
  1383.         EndM
  1384.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1385.         IMPORT_CFM_FUNCTION ImageCodecEffectCancel
  1386.     ENDIF
  1387.  
  1388. ;
  1389. ; pascal ComponentResult ImageCodecEffectGetSpeed(ComponentInstance effect, QTAtomContainer parameters, Fixed *pFPS)
  1390. ;
  1391.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1392.         Macro
  1393.         _ImageCodecEffectGetSpeed
  1394.             move.l              #$00080305,-(sp)
  1395.             moveq               #0,D0
  1396.             dc.w                $A82A
  1397.         EndM
  1398.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1399.         IMPORT_CFM_FUNCTION ImageCodecEffectGetSpeed
  1400.     ENDIF
  1401.  
  1402.  
  1403.  
  1404.  
  1405. ;  curve atom types and data structures 
  1406.  
  1407. kCurvePathAtom                    EQU        'path'
  1408. kCurveEndAtom                    EQU        'zero'
  1409. kCurveAntialiasControlAtom        EQU        'anti'
  1410. kCurveAntialiasOff                EQU        0
  1411. kCurveAntialiasOn                EQU        $FFFFFFFF
  1412. kCurveFillTypeAtom                EQU        'fill'
  1413. kCurvePenThicknessAtom            EQU        'pent'
  1414. kCurveMiterLimitAtom            EQU        'mitr'
  1415. kCurveJoinAttributesAtom        EQU        'join'
  1416. kCurveMinimumDepthAtom            EQU        'mind'
  1417. kCurveDepthAlwaysOffscreenMask    EQU        $80000000
  1418. kCurveTransferModeAtom            EQU        'xfer'
  1419. kCurveGradientAngleAtom            EQU        'angl'
  1420. kCurveGradientRadiusAtom        EQU        'radi'
  1421. kCurveGradientOffsetAtom        EQU        'cent'
  1422.  
  1423. kCurveARGBColorAtom                EQU        'argb'
  1424. ARGBColor                RECORD 0
  1425. alpha                     ds.w    1                ; offset: $0 (0)
  1426. red                         ds.w    1                ; offset: $2 (2)
  1427. green                     ds.w    1                ; offset: $4 (4)
  1428. blue                     ds.w    1                ; offset: $6 (6)
  1429. sizeof                     EQU *                    ; size:   $8 (8)
  1430.                         ENDR
  1431.  
  1432. kCurveGradientRecordAtom        EQU        'grad'
  1433. GradientColorRecord        RECORD 0
  1434. thisColor                 ds        ARGBColor        ; offset: $0 (0)
  1435. endingPercentage         ds.l    1                ; offset: $8 (8)
  1436. sizeof                     EQU *                    ; size:   $C (12)
  1437.                         ENDR
  1438. ; typedef struct GradientColorRecord *    GradientColorPtr
  1439.  
  1440.  
  1441. kCurveGradientTypeAtom            EQU        'grdt'
  1442. ;  currently supported gradient types 
  1443.  
  1444. kLinearGradient                    EQU        0
  1445. kCircularGradient                EQU        1
  1446. ; typedef long                             GradientType
  1447.  
  1448. ;
  1449. ; pascal ComponentResult CurveGetLength(ComponentInstance effect, gxPaths *target, long index, wide *wideLength)
  1450. ;
  1451.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1452.         Macro
  1453.         _CurveGetLength
  1454.             move.l              #$000C0100,-(sp)
  1455.             moveq               #0,D0
  1456.             dc.w                $A82A
  1457.         EndM
  1458.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1459.         IMPORT_CFM_FUNCTION CurveGetLength
  1460.     ENDIF
  1461.  
  1462. ;
  1463. ; pascal ComponentResult CurveLengthToPoint(ComponentInstance effect, gxPaths *target, long index, Fixed length, FixedPoint *location, FixedPoint *tangent)
  1464. ;
  1465.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1466.         Macro
  1467.         _CurveLengthToPoint
  1468.             move.l              #$00140101,-(sp)
  1469.             moveq               #0,D0
  1470.             dc.w                $A82A
  1471.         EndM
  1472.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1473.         IMPORT_CFM_FUNCTION CurveLengthToPoint
  1474.     ENDIF
  1475.  
  1476. ;
  1477. ; pascal ComponentResult CurveNewPath(ComponentInstance effect, Handle *pPath)
  1478. ;
  1479.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1480.         Macro
  1481.         _CurveNewPath
  1482.             move.l              #$00040102,-(sp)
  1483.             moveq               #0,D0
  1484.             dc.w                $A82A
  1485.         EndM
  1486.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1487.         IMPORT_CFM_FUNCTION CurveNewPath
  1488.     ENDIF
  1489.  
  1490. ;
  1491. ; pascal ComponentResult CurveCountPointsInPath(ComponentInstance effect, gxPaths *aPath, unsigned long contourIndex, unsigned long *pCount)
  1492. ;
  1493.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1494.         Macro
  1495.         _CurveCountPointsInPath
  1496.             move.l              #$000C0103,-(sp)
  1497.             moveq               #0,D0
  1498.             dc.w                $A82A
  1499.         EndM
  1500.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1501.         IMPORT_CFM_FUNCTION CurveCountPointsInPath
  1502.     ENDIF
  1503.  
  1504. ;
  1505. ; pascal ComponentResult CurveGetPathPoint(ComponentInstance effect, gxPaths *aPath, unsigned long contourIndex, unsigned long pointIndex, gxPoint *thePoint, Boolean *ptIsOnPath)
  1506. ;
  1507.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1508.         Macro
  1509.         _CurveGetPathPoint
  1510.             move.l              #$00140104,-(sp)
  1511.             moveq               #0,D0
  1512.             dc.w                $A82A
  1513.         EndM
  1514.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1515.         IMPORT_CFM_FUNCTION CurveGetPathPoint
  1516.     ENDIF
  1517.  
  1518. ;
  1519. ; pascal ComponentResult CurveInsertPointIntoPath(ComponentInstance effect, gxPoint *aPoint, Handle thePath, unsigned long contourIndex, unsigned long pointIndex, Boolean ptIsOnPath)
  1520. ;
  1521.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1522.         Macro
  1523.         _CurveInsertPointIntoPath
  1524.             move.l              #$00120105,-(sp)
  1525.             moveq               #0,D0
  1526.             dc.w                $A82A
  1527.         EndM
  1528.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1529.         IMPORT_CFM_FUNCTION CurveInsertPointIntoPath
  1530.     ENDIF
  1531.  
  1532. ;
  1533. ; pascal ComponentResult CurveSetPathPoint(ComponentInstance effect, gxPaths *aPath, unsigned long contourIndex, unsigned long pointIndex, gxPoint *thePoint, Boolean ptIsOnPath)
  1534. ;
  1535.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1536.         Macro
  1537.         _CurveSetPathPoint
  1538.             move.l              #$00120106,-(sp)
  1539.             moveq               #0,D0
  1540.             dc.w                $A82A
  1541.         EndM
  1542.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1543.         IMPORT_CFM_FUNCTION CurveSetPathPoint
  1544.     ENDIF
  1545.  
  1546. ;
  1547. ; pascal ComponentResult CurveGetNearestPathPoint(ComponentInstance effect, gxPaths *aPath, FixedPoint *thePoint, unsigned long *contourIndex, unsigned long *pointIndex, Fixed *theDelta)
  1548. ;
  1549.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1550.         Macro
  1551.         _CurveGetNearestPathPoint
  1552.             move.l              #$00140107,-(sp)
  1553.             moveq               #0,D0
  1554.             dc.w                $A82A
  1555.         EndM
  1556.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1557.         IMPORT_CFM_FUNCTION CurveGetNearestPathPoint
  1558.     ENDIF
  1559.  
  1560. ;
  1561. ; pascal ComponentResult CurvePathPointToLength(ComponentInstance ci, gxPaths *aPath, Fixed startDist, Fixed endDist, FixedPoint *thePoint, Fixed *pLength)
  1562. ;
  1563.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1564.         Macro
  1565.         _CurvePathPointToLength
  1566.             move.l              #$00140108,-(sp)
  1567.             moveq               #0,D0
  1568.             dc.w                $A82A
  1569.         EndM
  1570.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1571.         IMPORT_CFM_FUNCTION CurvePathPointToLength
  1572.     ENDIF
  1573.  
  1574. ;
  1575. ; pascal ComponentResult CurveCreateVectorStream(ComponentInstance effect, Handle *pStream)
  1576. ;
  1577.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1578.         Macro
  1579.         _CurveCreateVectorStream
  1580.             move.l              #$00040109,-(sp)
  1581.             moveq               #0,D0
  1582.             dc.w                $A82A
  1583.         EndM
  1584.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1585.         IMPORT_CFM_FUNCTION CurveCreateVectorStream
  1586.     ENDIF
  1587.  
  1588. ;
  1589. ; pascal ComponentResult CurveAddAtomToVectorStream(ComponentInstance effect, OSType atomType, Size atomSize, void *pAtomData, Handle vectorStream)
  1590. ;
  1591.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1592.         Macro
  1593.         _CurveAddAtomToVectorStream
  1594.             move.l              #$0010010A,-(sp)
  1595.             moveq               #0,D0
  1596.             dc.w                $A82A
  1597.         EndM
  1598.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1599.         IMPORT_CFM_FUNCTION CurveAddAtomToVectorStream
  1600.     ENDIF
  1601.  
  1602. ;
  1603. ; pascal ComponentResult CurveAddPathAtomToVectorStream(ComponentInstance effect, Handle pathData, Handle vectorStream)
  1604. ;
  1605.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1606.         Macro
  1607.         _CurveAddPathAtomToVectorStream
  1608.             move.l              #$0008010B,-(sp)
  1609.             moveq               #0,D0
  1610.             dc.w                $A82A
  1611.         EndM
  1612.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1613.         IMPORT_CFM_FUNCTION CurveAddPathAtomToVectorStream
  1614.     ENDIF
  1615.  
  1616. ;
  1617. ; pascal ComponentResult CurveAddZeroAtomToVectorStream(ComponentInstance effect, Handle vectorStream)
  1618. ;
  1619.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1620.         Macro
  1621.         _CurveAddZeroAtomToVectorStream
  1622.             move.l              #$0004010C,-(sp)
  1623.             moveq               #0,D0
  1624.             dc.w                $A82A
  1625.         EndM
  1626.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1627.         IMPORT_CFM_FUNCTION CurveAddZeroAtomToVectorStream
  1628.     ENDIF
  1629.  
  1630. ;
  1631. ; pascal ComponentResult CurveGetAtomDataFromVectorStream(ComponentInstance effect, Handle vectorStream, long atomType, long *dataSize, Ptr *dataPtr)
  1632. ;
  1633.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1634.         Macro
  1635.         _CurveGetAtomDataFromVectorStream
  1636.             move.l              #$0010010D,-(sp)
  1637.             moveq               #0,D0
  1638.             dc.w                $A82A
  1639.         EndM
  1640.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1641.         IMPORT_CFM_FUNCTION CurveGetAtomDataFromVectorStream
  1642.     ENDIF
  1643.  
  1644.  
  1645. ;  UPP call backs 
  1646.     ENDIF ; __IMAGECODEC__ 
  1647.  
  1648.